package work.net.udp;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;


/**
 * 使用UDP发送数据
 */
public class ClientDemo {

    public static void main(String[] args) throws Exception {
        // 1. 创建发送端对象, 使用默认端口发送
        DatagramSocket socket = new DatagramSocket();

        // 2. 使用while死循环不断地接收用户输入数据, 如果输入exit则退出程序
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("发送消息: ");
            String inp = sc.nextLine();

            // 3. 用户输入exit则下线
            if ("exit".equals(inp)) {
                System.out.println("下线成功");
                socket.close(); // 释放资源
                break;
            }

            // 使用DatagramSocket对象的send方法将数据包对象进行发送
            byte[] buffer = inp.getBytes();
            // 创建数据包对象
            DatagramPacket packet = new DatagramPacket(buffer, buffer.length, InetAddress.getLocalHost(), 8888);
            socket.send(packet);
        }
    }

}
